當你真正打開瀏覽器連進遊戲世界時,目前只有一個彩色方塊在綠色畫布上滑動。
MMO 是一個吃重視覺反饋的遊戲類型。如果你做的是純文字 MUD 或卡牌對戰,幾張靜態插圖就能把氛圍撐起來;但如果你想做的是 2000 年代初期那種帶有《天堂》或早年《暗黑破壞神》味道的 2.5D 等距(Isometric)ARPG,素材的數量確實令人覺得困擾。
一個合格的角色至少需要 8 個朝向(正北、東北、東、東南、正南、西南、西、西北),每個朝向至少要有待機、走路、普通攻擊、第二式攻擊與受擊 5 個動作,每個動作平均 8 到 12 幀:
1 角色×5 動作×8 方向×10 幀≈400 張圖片
光是一個基礎職業,就要產出 400 張像素去背圖。如果你還想加入法師、遊俠、幾種野怪與村民 NPC,圖量隨便都會衝破上千張。
個人獨立開發者不可能去一張張手繪像素,而在商用市集買現成 2D 素材包,往往風格割裂、且絕大多數只有單向或 4 方向。既然我們找了一隊 AI 當同事,唯一的突圍路徑,就是把 3D 工作流降維到 2D:讓 AI 負責生成 3D 模型與骨架動畫,再用代碼在 Blender 裡自動算成 8 方向的 2D Sprite 序列圖集。
但在開案第一週,這條看似美好的全自動產線,差點讓整個專案在容量與視覺上雙重翻車。
開工後的第一個週六(2026-07-11 中午),我和 Claude Code 建立了最初的渲染管線。整條流水線的工具鏈分工很單純:
概念與設定:由 GPT / Codex 產出厚塗暗調的概念圖,校準世界觀風格。3D 裸模生成:丟給 Meshy 生成帶貼圖的 3D GLB 模型。骨架與動作庫:模型經減面轉出 FBX 後,進 Mixamo 套用標準人體骨架(mixamorig)與成套動作 clip(待機、奔跑、揮劍、受擊)。自動化渲染:由 Claude Code 撰寫 Python 腳本,透過命令列以無頭模式(Headless,不開視窗)調用 Blender 進行 8 方向批量算圖。
不需要手動打開 Blender 軟體去手動旋轉角度、手動點擊算圖。終端機跑一行指令,13 秒內吐出所有去背的 PNG 影格。在 2.5D 遊戲地圖中,所有物件共用同一個太陽光源(預設從右上角射入)。如果你偷懶把光源綁在相機上、繞著角色旋轉拍攝,算出來的 8 個方向影子會跟著轉動;當角色在遊戲裡原地轉身時,影子會在地板上像電風扇一樣打轉。因此相機固定為 35° 等距俯視角,陽光固定在世界座標右上角,相機只在每批動畫播放時,將模型本體以 Z 軸為中心步進旋轉 45°(yaw = 0°, 45°, 90°...)。這樣輸出的影格,陰影方向在遊戲世界裡永遠物理一致。
當第一套騎士(Knight)的影格算完、接進 Pixi.js 遊戲畫面時,我們看到的不是英勇的戰士,而是一個全身觸電的抽筋患者。角色在待機時身材筆直,一揮劍整個人突然往前瞬移半格;走兩步路身形忽大忽小;從走路切換回待機,腳底下像踩到彈簧一樣跳動了一下。原因是 AI 寫的第一版渲染腳本,把相機構圖設成了「每幀自動縮放適配(Fit to Bounding Box)」。
3D 模型在揮刀時手臂向外延伸、劍刃抬高,整體包圍盒(Bounding Box)比站立待機時寬了整整一倍。相機為了把每一幀完整塞進 256×256 的畫布裡,在揮刀幀自動把視野拉遠;在待機幀又把鏡頭拉近。到了 2D 引擎裡,每張圖的中心點與像素比例完全不同,播放起來就成了災難級的全身抽搐。
為了解決這個問題,渲染管線被重構為兩階段(Two-pass)掃描渲染:
第一週建這條產線的時候極度痛苦,無數次讓人懷疑人生:「花這麼多天寫 Python、算四元數矩陣、調相機參數,是不是還不如去網上買幾個像素包頂著用?」但這套工程化管線真正的威力,在後續擴充職業時展露無遺:
第二職業:祕法師(Sorceress) 八月中旬我們決定加入法系職業。女性角色模型出爐後,掛上木製見習法杖。我們撰寫了 batch_render_sorceress.sh:法杖掛在右手骨架(mixamorig:RightHand)、休閒和平態時斜背在背後脊椎(mixamorig:Spine2)、第二式攻擊為過頂下砸。一鍵執行批渲,不到一個週末,祕法師全套 7 個動作 × 8 方向共 56 組動畫完整入庫。
第三職業:女獵人(Hunter) 八月底開放獵人職業,武器換成了長弓。射箭動作帶來了新的幾何挑戰:角色側身拉弓時,手腕骨架旋轉角度與平時站立時相差了整整 48°,如果用同一組旋轉參數,拉弦時弓身會直接穿透身體。 我們在腳本中解出了兩組姿態矩陣:平時持弓走 REST_MOUNT,瞄準射擊切換到 AIM_MOUNT。整套換算寫進 shell 腳本後,管線再次一鍵跑通,女獵人順利開閘。
騎士是開荒,法師是驗證,獵人則是流水線的日常運行。三個風格迥異的職業,底層共享著完全同一套 Blender 批渲、削幀演算法與 WebP 打包規格。
獨立開發做遊戲,最容易被消耗殆盡的地方往往不是程式邏輯,而是海量重複的美術勞動。在 AI 時代,個人開發者依然不可能像大廠一樣配置幾十人的原畫、建模與動作師團隊。但透過把 Codex 的概念生成、Meshy 的 3D 建模、Mixamo 的動作綁定、與 Blender 的 Headless 自動化腳本拼裝在一起,我們用幾百行代碼為自己蓋出了一座「小型自動化工坊」。